# 作者： 李泉志
# 2025年01月08日18时48分秒
# 2947029073@qq.com

"""
6 私有属性和私有方法
应用场景
• 在实际开发中，对象的某些属性或方法可能只希望在对象的内部被使用
，而不希望在外部被访问到
• 私有属性就是对象不希望公开的属性
• 私有方法就是对象不希望公开的方法

定义方式
• 在定义属性或方法时，在属性名或者方法名前增加两个下划线，定义的就是私有属性或方法

02. 伪私有属性和私有方法（科普）
提示：在日常开发中不要使用这种方式，访问对象的私有属性或私有方法
Python中，并没有真正意义的私有
• 在给属性、方法命名时，实际是对名称做了一些特殊处理，使得外界无法访问到
• 处理方式：在名称前面加上 _类名 => _类名__名称

print(xiaofang._Women__age)
xiaofang._Women__secret()
"""

class Women:
    def __init__(self, name, age):
        self.name = name
        self.__age = age

    def __secret(self):
        print(f'{self.name}的年龄是{self.__age}')

    def talk(self):
        self.__secret()

if __name__ == '__main__':
    w = Women('小美', 25)
    # 私有属性，外部不能直接访问
    # print(w.__age)
    # 私有方法，外部不能直接调用
    # w.__secret()
    w.talk()
    # 外部访问私有属性，但不推荐用
    # print(w._Women__age)